Semantics-Based Analysis for Optimizing Compilation of Concurrent Programs

نویسنده

  • Norio Kato
چکیده

Concurrent programming languages provide a paradigm for describing programs with complicated communication networks in a clear way. They support the creation of multiple computational units called processes that run concurrently in a program together with the mechanism for communication between processes, thereby simplifying the programming of synchronization and communication. Among them, concurrent languages that support finegrained processes are suitable for formal specification of concurrent systems. A runtime system of a fine-grained concurrent language, however, tends to suffer from overheads of primitive operations needed for handling concurrency. Although there is a lot of work on static analysis and optimization techniques for removing these overheads, comprehensive research on the safety of applying multiple optimization techniques has been limited in its scope. For instance, no frameworks have existed that can justify the correctness of static scheduling of concurrent processes and memory reuse. The point is that some issues of optimization cannot be fully expressed as program transformation on the original concurrent language. When these issues are not described formally, the optimization must be carried out on the responsibility of implementors of an optimizing compiler and hence there is no proof that the optimization is really correct. The objective of this dissertation is to clarify (a) how to perform semanticsbased runtime system optimization for concurrent programming languages and (b) how to give theoretical justification to such optimization. To this end, we take two concrete target languages—the concurrent logic programming language and the concurrent graph rewriting language LMNtal (pronounced as elemental)—and discuss for these languages several methods to perform static analysis and runtime system optimization based on the analysis. In this dissertation, several semantics-based program analysis techniques are proposed for optimizing compilation. For concurrent logic programs, the following will be explained: the safety of moving synchronization points as semantics-preserving program transformation for process scheduling, sequentiality analysis and code generation as a justified framework of applying multiple optimization techniques, and occurs-check analysis under cooperative

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An E cient Compilation Framework for Languages Based on Concurrent Process Calculus

We propose a framework for compiling programming languages based on concurrent process calculi, in which any computation is expressed by a combination of processes and communication channels. Our compilation framework realizes a fast dynamic process creation and a low-cost communication between processes. In the framework, a representation of a channel is not allocated in heap, but just put on ...

متن کامل

Preserving high-level semantics of parallel programming languages through the compilation flow of optimizing compilers

This paper presents a technique for representing the high level semantics of parallel programming languages in the intermediate representation of optimizing compilers. The semantics of these languages does not fit well in the intermediate representation of classical optimizing compilers, designed for single-threaded applications, and is usually lowered to threaded code with opaque concurrency b...

متن کامل

Applications of Abstraction for Concurrent Programs

JAMES WHEELIS RIELY: Applications of Abstraction for Concurrent Programs (Under the direction of Jan Prins and Rance Cleaveland) We study the use of abstraction to reason operationally about concurrent programs. Our thesis is that abstraction can profitably be combined with operational semantics to produce new proof techniques. We study two very different applications: • the implementation of n...

متن کامل

Set-based Error Diagnosis of Concurrent Constraint Programs

We present an automated method for the static prediction of the runtime error`deadlock or failure' in concurrent constraint programs. Operationally, the method is based on a new set-based analysis of reactive logic programs which computes an approximation of the greatest-model semantics. Semantically , the method is based on the connection between the inevitability of`deadlock or failure' in co...

متن کامل

Sable Research Group Dynamic Metrics for Java

In order to perform meaningful experiments in optimizing compilation and run-time system design, researchers usually rely on a suite of benchmark programs of interest to the optimization technique under consideration. Programs are described as numeric, memory-intensive, concurrent, or object-oriented, based on a qualitative appraisal, in some cases with little justification. We believe it is be...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005